#!/usr/bin/env python
# -*- coding: latin-1 -*-

# Creado por Pedro Guridi

import gtk
import os, sys
import string

sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process

# VARIABLES POR DEFECTO
size = '5'

def ClickAceptar(widget):
	archivos = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].split("\n")
	size = str(int(spinTam.get_value()))
	color = colorbutton.get_color()
	colorstring = gtk.color_selection_palette_to_string([colorbutton.get_color()])
	color = colorstring
	for archivo in archivos:
		if archivo != "":
			if os.path.isdir(archivo):
				ProcesarDirectorio(archivo, size, color)
			else:
				ProcesarImagen(archivo, size, color)

	Process.alert("El proceso ha finalizado satisfactoriamente")
	gtk.main_quit()

def ProcesarDirectorio(directorio, size, color):
	archivos = os.listdir(directorio)
	for archivo in archivos:
		archivo = directorio + "/" + archivo
		if os.path.isdir(archivo):
			ProcesarDirectorio(archivo, size, color)
		else:
			ProcesarImagen(archivo, size, color)

def ProcesarImagen(archivo, size, color):
	if Process.getExtension(archivo) == "JPG" or Process.getExtension(archivo) == "PNG":
		image = gtk.gdk.pixbuf_new_from_file( archivo )		
		Process.ProcessFileByArgument("convert -border " + size + "x" + size + " -bordercolor " + color +  " \""+archivo+"\" \""+archivo+"\"")

def ClickCancelar(widget):
	gtk.main_quit()


if Process.verifyCommands("convert%ImageMagick")==False:
	sys.exit()
	
	
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_title("Agregar borde")
w.set_border_width(20)

w.connect("destroy", gtk.mainquit) 
#l = gtk.Label(os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'])

table = gtk.Table(3, 2, False)

table.set_row_spacings(5)
table.set_col_spacings(5)

lAncho = gtk.Label("Ancho:")
table.attach(lAncho, 0, 1, 0, 1)

adjTam = gtk.Adjustment(1.0, 1.0, 999999.0, 1.0, 5.0, 0.0)
spinTam = gtk.SpinButton(adjTam, 0, 0)
spinTam.set_value(5)
table.attach(spinTam, 1, 2, 0, 1)

color = gtk.Label("Color:")
table.attach(color, 0, 1, 1, 2)

colorbutton = gtk.ColorButton(color=gtk.gdk.Color(0,0,0))
colorbutton.set_title('Selecciona un color')
table.attach(colorbutton, 1, 2, 1, 2)

# botones
aligBotones = gtk.Alignment(1.0, 0.0)
boxBotones = gtk.HBox(True, 4)

bAceptar = gtk.Button("Aceptar", gtk.STOCK_OK)
bAceptar.connect("clicked", ClickAceptar)

boxBotones.pack_start(bAceptar, False, False, 0)
bCancelar = gtk.Button("Cancelar", gtk.STOCK_CANCEL)
bCancelar.connect("clicked", ClickCancelar)

boxBotones.pack_start(bCancelar, False, False, 0)
aligBotones.add(boxBotones)
table.attach(aligBotones, 1, 2, 4, 5)

w.add(table)
w.show_all()
gtk.main()
